package org.quincy.mqtt.test.parser;

import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Map;

import org.quincy.mqtt.test.vo.DeviceId;
import org.quincy.rock.comm.parser.MessageParser4Integer;
import org.quincy.rock.comm.util.CommUtils;

/**
 * <b>MessageParser10000。</b>
 * <p><b>详细说明：</b></p>
 * <!-- 在此添加详细说明 -->
 * 遗嘱。
 * <p><b>修改列表：</b></p>
 * <table width="100%" cellSpacing=1 cellPadding=3 border=1>
 * <tr bgcolor="#CCCCFF"><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>
 * <!-- 在此添加修改列表，参考第一行内容 -->
 * <tr><td>1</td><td>wks</td><td>2018年5月14日 下午4:44:16</td><td>建立类型</td></tr>
 * 
 * </table>
 * @version 1.0
 * @author wks
 * @since 1.0
 */
public class MessageParser10000 extends MessageParser4Integer<ByteBuffer, DeviceId> {

	/**
	 * <b>构造方法。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 */
	public MessageParser10000() {
		super(Arrays.asList(CommUtils.MESSAGE_TYPE_ALL));
	}

	/** 
	 * pack。
	 * @see org.quincy.rock.comm.MessageParser#pack(java.lang.Object, java.util.Map)
	 */
	@Override
	public ByteBuffer pack(DeviceId message, Map<String, Object> ctx) {
		ByteBuffer buf = ByteBuffer.allocate(20);
		buf = message.toBinary(buf, ctx);
		buf.flip();
		return buf;
	}

	/** 
	 * unpack。
	 * @see org.quincy.rock.comm.MessageParser#unpack(java.lang.Object, java.util.Map)
	 */
	@Override
	public DeviceId unpack(ByteBuffer buf, Map<String, Object> ctx) {
		DeviceId message = new DeviceId();
		message.fromBinary(buf, ctx);
		return message;
	}
}
